package Mapa;

import Objetos.*;
import TDA_Mapeo.*;

import javax.swing.*;

public class Mapeo_Objetos {
	protected Map<Character, Objeto> mapeo;
	
	/**Crea un mapeo de objetos. */
	public Mapeo_Objetos() {
		mapeo = new Mapeo_HashAbierto<Character, Objeto>(20);
		cargarMapeo();
	}
	
	/**Carga el mapeo con todos los tipos de objetos existentes en el mapa. */
	protected void cargarMapeo() {
		Objeto e;
		Character X;
		
		// 'X' = Piso
		X = new Character('X');
		e = new Bloque();
		e.setGrafico(new ImageIcon(getClass().getResource("/Imagenes/Objetos/piso.png")));
		try {
			mapeo.put(X, e);
		} 
		catch (InvalidKeyException e1) {
			System.out.println("Mapeo_Caracteres :: cargarMapeo() :: piso");
		}
		
		// 'P' = Bloque pregunta
		X = new Character('P');
		e = new Bloque();
		e.setGrafico(new ImageIcon(getClass().getResource("/Imagenes/Objetos/pregunta.gif")));
		try {
			mapeo.put(X, e);
		} 
		catch (InvalidKeyException e1) {
			System.out.println("Mapeo_Caracteres :: cargarMapeo() :: pregunta");
		}
		
		// 'L' = Ladrillo
		X = new Character('L');
		e = new Ladrillo();
		e.setGrafico(new ImageIcon(getClass().getResource("/Imagenes/Objetos/ladrillo.png")));
		try {
			mapeo.put(X, e);
		} 
		catch (InvalidKeyException e1) {
			System.out.println("Mapeo_Caracteres :: cargarMapeo() :: ladrillo");
		}
		
		// 'S' = Tubo
		X = new Character('S');
		e = new Ladrillo();
		e.setGrafico(new ImageIcon(getClass().getResource("/Imagenes/Objetos/tubo1.png")));
		try {
			mapeo.put(X, e);
		} 
		catch (InvalidKeyException e1) {
			System.out.println("Mapeo_Caracteres :: cargarMapeo() :: tubo1");
		}
		
		// 'T' = Tubo2
		X = new Character('T');
		e = new Ladrillo();
		e.setGrafico(new ImageIcon(getClass().getResource("/Imagenes/Objetos/tubo2.png")));
		try {
			mapeo.put(X, e);
		} 
		catch (InvalidKeyException e1) {
			System.out.println("Mapeo_Caracteres :: cargarMapeo() :: tubo2");
		}
		
		//'s' = Tubo3
		X = new Character('s');
		e = new Ladrillo();
		e.setGrafico(new ImageIcon(getClass().getResource("/Imagenes/Objetos/tubo3.png")));
		try {
			mapeo.put(X, e);
		} 
		catch (InvalidKeyException e1) {
			System.out.println("Mapeo_Caracteres :: cargarMapeo() :: tubo3");
		}
		
		//'t' = Tubo4
		X = new Character('t');
		e = new Ladrillo();
		e.setGrafico(new ImageIcon(getClass().getResource("/Imagenes/Objetos/tubo4.png")));
		try {
			mapeo.put(X, e);
		} 
		catch (InvalidKeyException e1) {
			System.out.println("Mapeo_Caracteres :: cargarMapeo() :: tubo4");
		}
		
	}
	
	/**Devuelve el objeto con clave key. */
	public Objeto get( Character key ){
		try {
			return mapeo.get(key);
		}
		catch (InvalidKeyException e) {
			System.out.println("Mapeo_Caracteres :: get()");
			return null;
		}
	}
}
